home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / tls / tls074c.sunsparc.Z / tls074c.sunsparc / lib / vtcl / tests / text.tcl < prev    next >
Encoding:
Text File  |  1995-07-20  |  2.4 KB  |  85 lines

  1. # CVS $Id: text.tcl,v 1.3 1995/02/03 16:55:26 zibi Exp $
  2. source tools.tcl
  3.  
  4. proc mkTextDialog {options cbs} {
  5.      set target [keylget cbs widget]
  6.      
  7.      set dlog [VtFormDialog $target.txt -okCallback CloseDialogCB]
  8.  
  9.      set lab [VtLabel $dlog.echoLab  -label "Echo Area"]
  10.  
  11.      set echoTxt [VtText $dlog.echo \
  12.              -leftOffset 5 \
  13.              -CHARM_leftOffset 1 \
  14.              -below $lab -rightSide FORM -rows 2 \
  15.              -columns 40 \
  16.              -readOnly ]
  17.  
  18.      set sep [VtSeparator $dlog.sep \
  19.               -leftSide FORM -rightSide FORM \
  20.               -MOTIF_topOffset 5  -below $echoTxt]
  21.  
  22.      set lab [VtLabel $dlog.lab -below $sep -label "Test Text" \
  23.                 -MOTIF_topOffset 5]
  24.  
  25.      set additionalOpts [list  -below $lab -rightSide FORM -bottomSide FORM \
  26.                    -leftOffset 5  \
  27.                    -CHARM_leftOffset 1\
  28.                    -userData $echoTxt]
  29.      eval "VtText {$dlog.test} $options $additionalOpts"
  30.  
  31.      VtShow $dlog
  32. }
  33.  
  34. proc addTest {parent label args} {
  35.      VtPushButton $parent.$label -label $label -callback "mkTextDialog {$args}"
  36. }
  37.  
  38. # general callback 
  39. proc textCB {label cbs} {
  40.      set target [keylget cbs widget]
  41.      set value [keylget cbs value]
  42.      set echoTxt [VtGetValues $target -userData]
  43.      set echoTxt [lindex $echoTxt 0]
  44.  
  45.      VtSetValues $echoTxt -value "$label callback\nValue is: <$value>"
  46. }
  47.  
  48. proc echoCB {cbs} {
  49.      set target [keylget cbs widget]
  50.      set value [keylget cbs value]
  51.      set echoTxt [VtGetValues $target -userData]
  52.  
  53.      VtSetValues $echoTxt -value "Value is: <$value>"
  54. }
  55.           
  56. set ap [VtOpen "text"]
  57.  
  58. set dlog [VtFormDialog $ap.form -title "Text Test" \
  59.                -okLabel Exit -okCallback QuitCB ]
  60.  
  61. set rc [VtRowColumn $dlog.rc -xmArgs "XmNbackground red" -rightSide FORM]
  62.  
  63. set lotsOfText ""
  64. for {set i 0 } {$i < 100} {incr i} {
  65.     set lotsOfText "$lotsOfText\nLots of Text that needs a scrollbar $i"
  66. }
  67.  
  68. addTest $rc "No Echo" -noEcho -valueChangedCallback echoCB
  69. addTest $rc "Read Only" -value "This is read only" -readOnly
  70. addTest $rc "Horizontal ScrollBar" -horizontalScrollBar 1
  71. addTest $rc "Vertical ScrollBar" -verticalScrollBar 1 -rows 5 \
  72.                  -value $lotsOfText
  73. addTest $rc "Both ScrollBars" -verticalScrollBar 1 -horizontalScrollBar 1 \
  74.                   -rows 5 -value $lotsOfText
  75. addTest $rc "Callback" -callback "textCB callback"
  76. addTest $rc "All_Callbacks" -valueChangedCallback "textCB valueChanged" \
  77.             -callback "textCB callback" \
  78.             -activateCallback "textCB activate" \
  79.             -losingFocusCallback "textCB losingFocus"
  80.  
  81. VtShow $dlog
  82.  
  83. VtMainLoop
  84.  
  85.